package com.css.dzj.dzjdzqs.modules.apaction.apother.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.google.common.base.Objects;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.util.Date;

/**
 * 行为信息其他行为
 * @Author WT
 * @Date 2020/6/28
 */
@Entity
@Table(name = "JG_JGXW_OTHER_ACTION", schema = "DZJJH", catalog = "")
public class ApOtherEntity {
    //记录唯一标识
    private String recordUniqueIdentity;
    //监管事项目录编码
    private String superviseItemCode;
    //行为名称
    private String actionName;
    //行为编号
    private String actionCode;
    //检查行为编号
    private String checkBehaviorNumber;
    //监管对象
    private String superviseObject;
    //事项来源
    private String itemSource;
    //实施机构
    private String implementInstitution;
    //实施机构编码
    private String implementInstitutionCode;
    //受委托部门
    private String entrustDept;
    //受委托部门编码
    private String entrustDeptCode;
    //行政相对人（单位/个人）
    private String administrativeCp;
    //行政相对人性质
    private String administrativeCpNa;
    //行政相对人证件类型
    private String administrativeCpCeType;
    //行政相对人(单位/个人)编码
    private String administrativeCpUiCode;
    //注册地址
    private String addressRegistered;
    //经营地址
    private String addressOperating;
    //行政区划代码
    private String areaNumber;
    //监管措施
    private String superviseMeasure;
    //结案情况
    private String closingCase;
    //开始时间
    private Date startDate;
    //结束时间
    private Date endDate;
    //报送时间
    private Date submittedDate;
    //报送人员
    private String submittedPersonnel;
    //主键
    private String actionId;

    @Basic
    @Column(name = "Record_Unique_Identity")
    public String getRecordUniqueIdentity() {
        return recordUniqueIdentity;
    }

    public void setRecordUniqueIdentity(String recordUniqueIdentity) {
        this.recordUniqueIdentity = recordUniqueIdentity;
    }

    @Basic
    @Column(name = "Supervise_Item_Code")
    public String getSuperviseItemCode() {
        return superviseItemCode;
    }

    public void setSuperviseItemCode(String superviseItemCode) {
        this.superviseItemCode = superviseItemCode;
    }

    @Basic
    @Column(name = "Action_Name")
    public String getActionName() {
        return actionName;
    }

    public void setActionName(String actionName) {
        this.actionName = actionName;
    }

    @Basic
    @Column(name = "Action_Code")
    public String getActionCode() {
        return actionCode;
    }

    public void setActionCode(String actionCode) {
        this.actionCode = actionCode;
    }

    @Basic
    @Column(name = "Check_Behavior_Number")
    public String getCheckBehaviorNumber() {
        return checkBehaviorNumber;
    }

    public void setCheckBehaviorNumber(String checkBehaviorNumber) {
        this.checkBehaviorNumber = checkBehaviorNumber;
    }

    @Basic
    @Column(name = "Supervise_Object")
    public String getSuperviseObject() {
        return superviseObject;
    }

    public void setSuperviseObject(String superviseObject) {
        this.superviseObject = superviseObject;
    }

    @Basic
    @Column(name = "Item_Source")
    public String getItemSource() {
        return itemSource;
    }

    public void setItemSource(String itemSource) {
        this.itemSource = itemSource;
    }

    @Basic
    @Column(name = "Implement_Institution")
    public String getImplementInstitution() {
        return implementInstitution;
    }

    public void setImplementInstitution(String implementInstitution) {
        this.implementInstitution = implementInstitution;
    }

    @Basic
    @Column(name = "Implement_Institution_Code")
    public String getImplementInstitutionCode() {
        return implementInstitutionCode;
    }

    public void setImplementInstitutionCode(String implementInstitutionCode) {
        this.implementInstitutionCode = implementInstitutionCode;
    }

    @Basic
    @Column(name = "Entrust_Dept")
    public String getEntrustDept() {
        return entrustDept;
    }

    public void setEntrustDept(String entrustDept) {
        this.entrustDept = entrustDept;
    }

    @Basic
    @Column(name = "Entrust_Dept_Code")
    public String getEntrustDeptCode() {
        return entrustDeptCode;
    }

    public void setEntrustDeptCode(String entrustDeptCode) {
        this.entrustDeptCode = entrustDeptCode;
    }

    @Basic
    @Column(name = "Administrative_Cp")
    public String getAdministrativeCp() {
        return administrativeCp;
    }

    public void setAdministrativeCp(String administrativeCp) {
        this.administrativeCp = administrativeCp;
    }

    @Basic
    @Column(name = "Administrative_Cp_Na")
    public String getAdministrativeCpNa() {
        return administrativeCpNa;
    }

    public void setAdministrativeCpNa(String administrativeCpNa) {
        this.administrativeCpNa = administrativeCpNa;
    }

    @Basic
    @Column(name = "Administrative_Cp_Ce_Type")
    public String getAdministrativeCpCeType() {
        return administrativeCpCeType;
    }

    public void setAdministrativeCpCeType(String administrativeCpCeType) {
        this.administrativeCpCeType = administrativeCpCeType;
    }

    @Basic
    @Column(name = "Administrative_Cp_UI_Code")
    public String getAdministrativeCpUiCode() {
        return administrativeCpUiCode;
    }

    public void setAdministrativeCpUiCode(String administrativeCpUiCode) {
        this.administrativeCpUiCode = administrativeCpUiCode;
    }

    @Basic
    @Column(name = "Address_Registered")
    public String getAddressRegistered() {
        return addressRegistered;
    }

    public void setAddressRegistered(String addressRegistered) {
        this.addressRegistered = addressRegistered;
    }

    @Basic
    @Column(name = "Address_Operating")
    public String getAddressOperating() {
        return addressOperating;
    }

    public void setAddressOperating(String addressOperating) {
        this.addressOperating = addressOperating;
    }

    @Basic
    @Column(name = "Area_Number")
    public String getAreaNumber() {
        return areaNumber;
    }

    public void setAreaNumber(String areaNumber) {
        this.areaNumber = areaNumber;
    }

    @Basic
    @Column(name = "Supervise_Measure")
    public String getSuperviseMeasure() {
        return superviseMeasure;
    }

    public void setSuperviseMeasure(String superviseMeasure) {
        this.superviseMeasure = superviseMeasure;
    }

    @Basic
    @Column(name = "Closing_Case")
    public String getClosingCase() {
        return closingCase;
    }

    public void setClosingCase(String closingCase) {
        this.closingCase = closingCase;
    }

    @Basic
    @Column(name = "Start_Date")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    @Basic
    @Column(name = "End_Date")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    @Basic
    @Column(name = "Submitted_Date")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getSubmittedDate() {
        return submittedDate;
    }

    public void setSubmittedDate(Date submittedDate) {
        this.submittedDate = submittedDate;
    }

    @Basic
    @Column(name = "Submitted_Personnel")
    public String getSubmittedPersonnel() {
        return submittedPersonnel;
    }

    public void setSubmittedPersonnel(String submittedPersonnel) {
        this.submittedPersonnel = submittedPersonnel;
    }

    @Id
    @Column(name = "ACTION_ID")
    @GeneratedValue(generator = "SnowflakeId")
    @GenericGenerator(name = "SnowflakeId",strategy = "com.css.dzj.dzjdzqs.common.util.SnowflakeId")
    public String getActionId() {
        return actionId;
    }

    public void setActionId(String actionId) {
        this.actionId = actionId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        ApOtherEntity that = (ApOtherEntity) o;
        return Objects.equal(recordUniqueIdentity, that.recordUniqueIdentity) &&
                Objects.equal(superviseItemCode, that.superviseItemCode) &&
                Objects.equal(actionName, that.actionName) &&
                Objects.equal(actionCode, that.actionCode) &&
                Objects.equal(checkBehaviorNumber, that.checkBehaviorNumber) &&
                Objects.equal(superviseObject, that.superviseObject) &&
                Objects.equal(itemSource, that.itemSource) &&
                Objects.equal(implementInstitution, that.implementInstitution) &&
                Objects.equal(implementInstitutionCode, that.implementInstitutionCode) &&
                Objects.equal(entrustDept, that.entrustDept) &&
                Objects.equal(entrustDeptCode, that.entrustDeptCode) &&
                Objects.equal(administrativeCp, that.administrativeCp) &&
                Objects.equal(administrativeCpNa, that.administrativeCpNa) &&
                Objects.equal(administrativeCpCeType, that.administrativeCpCeType) &&
                Objects.equal(administrativeCpUiCode, that.administrativeCpUiCode) &&
                Objects.equal(addressRegistered, that.addressRegistered) &&
                Objects.equal(addressOperating, that.addressOperating) &&
                Objects.equal(areaNumber, that.areaNumber) &&
                Objects.equal(superviseMeasure, that.superviseMeasure) &&
                Objects.equal(closingCase, that.closingCase) &&
                Objects.equal(startDate, that.startDate) &&
                Objects.equal(endDate, that.endDate) &&
                Objects.equal(submittedDate, that.submittedDate) &&
                Objects.equal(submittedPersonnel, that.submittedPersonnel) &&
                Objects.equal(actionId, that.actionId);
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(recordUniqueIdentity, superviseItemCode, actionName, actionCode, checkBehaviorNumber, superviseObject, itemSource, implementInstitution, implementInstitutionCode, entrustDept, entrustDeptCode, administrativeCp, administrativeCpNa, administrativeCpCeType, administrativeCpUiCode, addressRegistered, addressOperating, areaNumber, superviseMeasure, closingCase, startDate, endDate, submittedDate, submittedPersonnel, actionId);
    }
}
